define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template', 'upload'], function ($, undefined, Backend, Table, Form, Template, Upload) {

    var Controller = {

        settingedit: function () {

            $("div.mf_list").each(function () {
                $(this).buildList()
            })

            let watchButton = function() {
                $('div.section_body').each(function () {
                    if ($(this).is(":hidden")) {
                        $(this).closest('.section').find('button.section_switcher').removeClass('section_open').addClass('section_close')
                    } else {
                        $(this).closest('.section').find('button.section_switcher').removeClass('section_close').addClass('section_open')
                    }
                })
            }

            $(".section_switcher").click(function () {
                $(this).closest('div.section').find('div.section_body').slideToggle(400, watchButton)
            })

            $("button.all_section_switcher").click(function () {
                let status = $(this).data('open')
                if (status) {
                    $('div.section_body').slideUp(400, watchButton)
                    $(this).data('open', 0)
                } else {
                    $('div.section_body').slideDown(400, watchButton)
                    $(this).data('open', 1)
                }
            })

            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;
});